package com.shujia.day03;

public class Demo10ArrayDefined {
    public static void main(String[] args) {
        /*
           TODO  Array 数组
                定义:  将相同类型的数据汇集到一起,形成一个变量 改变成为数组 可以看成是一个容器
                数组变量的形式为 引用类型,引用类型为空可以使用 null 来进行表示
                格式1：数据类型[] 数组名;
                      初始化:  ① 数据类型[] 数组名 = new 数据类型[长度]  -> 动态初始化
                              ② 数据类型[] 数组名 = new 数据类型[]{元素,元素,元素,...} -> 静态初始化
                              ③ 数据类型[] 数组名 = {元素,元素,元素,...} -> 静态初始化
                格式2：数据类型 数组名[]
                              ① 数据类型 数组名[] = new 数据类型[长度]  -> 动态初始化
                              ② 数据类型 数组名[] = new 数据类型[]{元素,元素,元素,...} -> 静态初始化
                              ③ 数据类型 数组名[] = {元素,元素,元素,...} -> 静态初始化

                注意:
                    ① 对于变量定义后需要对其进行初始化(赋值)
                    ② 对于数组定义后,其长度固定
                    ③ 通过数组的下标可以对数组元素进行赋值,同时也可以进行取值,同时下标从0开始
                    ④ 对于数组初始化后,对其中每个下标对应位置保存的数据也进行了初始化,使用相对应的默认值进行填充
                            例如 String  ->  null

         */
        // 需求:定义员工姓名  => 姓名元素是一个字符串  => String 类型
//        String[] employName = null;
        String[] employName = new String[3];
        employName = new String[4];
        employName[0] = "易政";
        employName[1] = "杨德广";
        employName[2] = "许康杰";
//        employName[3] = "李国涛";
        // 超过长度后出错: java.lang.ArrayIndexOutOfBoundsException  -> 数组越界异常
        employName[3] = "李国涛";
        System.out.println(employName); // [Ljava.lang.String;@4554617c  => [ 数组  java.lang.String 存储的元素类型 @4554617c 地址
        System.out.println(employName[0]); // 易政
        System.out.println(employName[1]); // 杨德广
        System.out.println(employName[2]); // 许康杰
        System.out.println(employName[3]); // 李国涛

        int[] selay = new int[4];
        selay[0] = 12000;
        selay[1] = 16000;
        selay[2] = 20000;
        System.out.println(selay[0]);
        System.out.println(selay[3]);

        // 定义时就给定元素  Integer.MAX_VALUE 表示int类型的最大值
        int[] selay2 = new int[]{12000, 16000, 20000, Integer.MAX_VALUE};
        System.out.println(selay2[0]);
        System.out.println(selay2[1]);
        System.out.println(selay2[2]);
        System.out.println(selay2[3]);


        String students[] = new String[3];
        students[0] = "李亮";
        students[1] = "袁枫不动";
        students[2] = "形同陌路";
        System.out.println(students[0]);
        System.out.println(students[1]);
        System.out.println(students[2]);

        String students2[] = new String[]{"李亮","袁枫不动","形同虚设"};
        System.out.println(students2[0]);
        System.out.println(students2[1]);

        String students3[] = {"李亮","袁枫不动","形同虚设"};
        String[] students4 = {"李亮","袁枫不动","形同虚设"};



    }
}
